package controllers;

import java.util.ArrayList;
import java.util.List;

import model.User_list;

import com.et.ar.exception.ActiveRecordException;
import com.et.mvc.Controller;
import com.et.mvc.binding.DataBinders;

public class ApplicationController extends Controller {
	public static final String enter = " \n";
	static{
		DataBinders.setAllowEmpty(true);	//参数绑定时允许空值
	}
	/*
	 * 字典类分页方法
	 */
	public List<Object> pageList(List<?> list,int rows,int pages){
		List<Object> lst = new ArrayList(rows);		
		int startPos = 0;
		int endPos = 0;
		//判读是不是第一页
		if(pages ==1 ){
			startPos = 0;
			endPos = pages * rows;
		}
		//如果不是第一页
		if(pages > 1){
			startPos = (pages-1) * rows +1;
			endPos = pages * (rows)+1;
		}
		//如果结束游标大于总记录数
		if(endPos>list.size()){
			endPos = list.size();
		}
		
		if(list!=null && list.size()>0){
			for(int i=startPos;i<endPos;i++){
				Object obj = list.get(i);
				lst.add(obj);
			}
		}
		return lst;
	}
	
	/*
	 * 获取分页SQL
	 */
	public String getPageSql(String sql ,int pages,int rows ){
		int startPos = 0;
		int endPos = 0;
		//判读是不是第一页
		if(pages ==1 ){
			startPos = 0;
			endPos = pages * rows;
		}
		//如果不是第一页
		if(pages > 1){
			startPos = (pages-1) * rows +1;
			endPos = pages * (rows)+1;
		}
		
		String retSql = "select * from ( select row_.*, rownum rownum_ from (  " + sql + ") row_ where rownum <= " + endPos + ") where rownum_ > " + startPos;
		
		return retSql;
	}
	/**
	 * 检查用户名是否存在，不存在返回true
	 * @param userName
	 * @return
	 * @throws ActiveRecordException
	 */
	public boolean checkUserName(String userName) throws ActiveRecordException{
		List<User_list> list = User_list.findBySql(User_list.class,
				"select * from user_list where user_name=? ", new Object[]{
			userName});
		boolean b = true;
		if(list.size()>0)
			b = false;
		return b;
	}
	/**
	 * 构造查询条件得方法
	 * @param cond 查询条件，第一次是 1=1 ，然后不停得拼接 and条件
	 * @param value 查询得值，如果是like查询，需要手动加'%' %value%
	 * @param target 目标字段
	 * @param operate 操作符
	 */
	public void buildCond(StringBuilder cond,String value,String target,String operate){
		if(value!=null && value.length()>0){
			cond.append(" and ").append(target).append(" ").append(operate).append(" '").append(value).append("'");
		}
	}
}
